package com.jt.feign;

import com.jt.feign.ProviderFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * @FeignClient 注解用于描述远程调用接口,这个接口不需要你写实现类,
 * 你只需要定义访问规则即可(例如请求方式,请求url,请求参数)
 * @FeignClient 注解描述的接口的实现类对象会默认交给Spring管理,
 * 这个Bean对象的名字默认就是name属性指定的值,这个name还有一个层面的含义
 * 就是你远程调用的服务名
 */
@FeignClient(name="aj-provider",contextId="remoteProviderService", fallbackFactory = ProviderFallbackFactory.class)
public interface RemoteProviderService {
    /*
        @GetMapping 表示以Get请求方式调用远端服务
     */
    @GetMapping("/provider/echo/{msg}")
    String echoMsg(@PathVariable("msg") String msg);
}
